Matplotlin es un libreria para crear imagenes 2D de manera facil.
Checate mas en :
Para usar matplotlib, solo tiene que importar el modulo ..tambien te conviene importar numpy pues es muy util
In [2]:
import numpy as np # modulo de computo numerico
import matplotlib.pyplot as plt # modulo de graficas
# esta linea hace que las graficas salgan en el notebook
%matplotlib inline
In [13]:
x = np.array([0,1,2,3,4])
y = x**2 #cuadramos x
plt.plot(x,y)
print("== Grafica sencilla ==")
Podemos usar la funcion np.linspace para crear valores en un rango, por ejemplo si queremos 100 numeros entre 0 y 10 usamos:
In [14]:
x = np.linspace(0,10,100)
y = x**2 #cuadramos x
plt.plot(x,y)
print("== Grafica sencilla ==")
Y podemos graficar dos cosas al mismo tiempo:
In [16]:
x = np.linspace(0,10,100)
y1 = x # una linea
y2 = x**2 # cuadramos x
plt.plot(x,y1)
plt.plot(x,y2)
print("== Dos graficas sencillas ==")
Que tal si queremos distinguir cada linea? Pues usamos legend(), de leyenda..tambien tenemos que agregarles nombres a cada plot
In [19]:
x = np.linspace(0,10,100)
y1 = x # una linea
y2 = x**2 # cuadramos x
plt.plot(x,y1,label="Linea")
plt.plot(x,y2,label="Cuadrado")
plt.legend()
print("== Dos graficas sencillas ==")
Tambien podemos hacer mas cosas, como dibujar solamente los puntos, o las lineas con los puntos usando linestyle:
In [30]:
x = np.linspace(0,10,100)
y1 = x # una linea
y2 = x**2 # cuadramos x
y3 = np.sqrt(x) # sacamos raiz cuadrada a x
y4 = np.power(x,1.5) # elevamos x a la potencia 1.5
plt.plot(x,y1,label="Linea",linestyle='-') # linea
plt.plot(x,y2,label="Cuadrado",linestyle=':') # puntitos
plt.plot(x,y3,label="Raiz",linestyle='-.') # linea y punto
plt.plot(x,y4,label="potencia 1.5",linestyle='--') # lineas salteadas
plt.legend()
print("== Dos graficas sencillas ==")
In [35]:
N = 50 # numero de puntos
x = np.random.rand(N) # numeros aleatorios entre 0 y 1
y = np.random.rand(N)
plt.scatter(x, y)
print("== Scatter de puntos aleatorios ==")
Pero ademas podemos meter mas informacion, por ejemplo dar colores cada punto, o darle tamanos diferentes:
In [38]:
N = 50 # numero de puntos
x = np.random.rand(N) # numeros aleatorios entre 0 y 1
y = np.random.rand(N)
colores = np.random.rand(N) # colores aleatorios
radios= 15 * np.random.rand(N) # numeros aleatorios entre 0 y 15
areas = np.pi * radios**2 # la formula de area de un circulo
plt.scatter(x, y, s=areas, c=colores, alpha=0.5)
print("== Scatter plot de puntos aleatorios ==")
In [45]:
N=500
x = np.random.rand(N) # numeros aleatorios entre 0 y 1
plt.hist(x)
print("== Histograma aleatorio ==")
otro tipo de datos, tomados de una campana de gauss, es decir una distribucion normal:
In [47]:
N=500
x = np.random.randn(N)
plt.hist(x)
print("== Histograma aleatorio Normal ==")
In [60]:
N=1000
x1 = np.random.randn(N)
x2 = 2+2*np.random.randn(N)
plt.hist(x1,20,alpha=0.3)
plt.hist(x2,20,alpha=0.3)
print("== Histograma de dos distribuciones ==")
In [68]:
N=10
matriz = np.random.randn(N,N)
plt.imshow(matriz)
print("== Imagen de Matriz ==")
La matriz era demasiado
In [71]:
N=10
matriz = np.random.randn(N,N)
plt.imshow(matriz, interpolation='nearest')
plt.grid()
print("== Imagen de Matriz ==")
In [ ]: